<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>生成器函数</title>
  </head>
  <body>
    <script>
      // function* gen() {
      //   yield 111;
      //   yield 222;
      //   yield 333;
      // }
      //
      // var iterator = gen();
      // 回调地狱
      // var timer1 = setTimeout(() => {
      //   console.log(iterator.next().value);
      //   setTimeout(() => {
      //     console.log(iterator.next().value);
      //     setTimeout(() => {
      //       console.log(iterator.next().value);
      //     }, 3000);
      //   }, 2000);
      // }, 1000);

      function one() {
        setTimeout(() => {
          console.log(111);
          iterator.next();
        }, 1000);
      }

      function two() {
        setTimeout(() => {
          console.log(222);
          iterator.next();
        }, 2000);
      }

      function three() {
        setTimeout(() => {
          console.log(333);
          iterator.next();
        }, 3000);
      }

      function* gen() {
        yield one();
        yield two();
        yield three();
      }

      var iterator = gen();
      iterator.next();
    </script>
  </body>
</html>
